#include "bluetooth_task.h"

TaskHandle_t blueHandler;
extern QueueHandle_t configMsgHandle;
//用来去书写心跳任务需要的外设进行初始化
void init_bluetooth(){
//初始化usart3
   usart3_init(9600);
}


void bluetooth_task(void *param){

    		
	char data[200];
	while (1){/*
			printf("123456789\r\n");
			 //从HC - 05接收数据
			memset(data, 0, 200);
			int index = 0;
			while (1) {
					while (USART_GetFlagStatus(USART3, USART_FLAG_RXNE) == RESET);
				  char res = USART_ReceiveData(USART3);
					if(res=='\0') continue;  //一直读空的情况不要
					if(res=='\n'){//已经结束
							data[index] = '\0';
						  break;
					}else{
							data[index] = res;
					}
					index++;
			}
			printf("%s.......\r\n",data);
			 */
 char* msg = "{\"msgType\":1,\"content\":{\"state\":15,\"temp\":20,\"temp1\":20,\"humi\":20,\"humi1\":20,\"smoke\":20,\"sunshine\":20}}";
  /*
 0.把接收到的json通过消息队列去发送
 1.获取后到json字符串--转化为json对象
 2.从json对象里面解析数据
 3.存储在eeprom里面--配置模块--单独任务
 4.执行模块从eeprom中获取数据 
 
  */
//获取msg里面的消息类型
int msgType=parseMsgType(msg);
if (checkConfigMsg(msgType))
{
	//printf("parse msg is config message \r\n");
    if(xQueueSend(configMsgHandle,&msg,portMAX_DELAY)==pdPASS){
printf("config send to queue\r\n");
	}
}else
{
	//消息类型不是我们想要的结果
	printf("parse msg error \r\n");
}
vTaskDelay(1000);
}

}

int checkConfigMsg(int type)
{return (type==MSG_TYPE_CONFIG_TH||MSG_TYPE_CONFIG_NETWORK?1:0);
 
	
}
//用来创建一个任务，心跳任务
/*
1.心跳 -让用户去感知设备在工作
2.没过几秒中给后台报备自己的状态 --网络，http，tcp udp



*/
void createbluetoothTask(){
xTaskCreate(bluetooth_task," bluetooth_task",128,NULL,2,&blueHandler);
}